package com.xjlsoft.weather.task;

import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.xjlsoft.weather.config.ApplicationContextProvider;
import com.xjlsoft.weather.service.AerosolAvgService;
import com.xjlsoft.weather.service.GroundAvgService;
import com.xjlsoft.weather.service.RadiationAvgService;
import com.xjlsoft.weather.service.WeatherTaskJob;


/**
 * 地面数据 平均数据  定时任务
 *
 * @author 码农猿
 */
public class AvgMonTask implements WeatherTaskJob {
	
	
	/**
     * 日志
     */
    private static final Logger logger = LoggerFactory.getLogger(AvgMonTask.class);

    
	
	
	private AerosolAvgService aerosolAvgService;

	private GroundAvgService groundAvgService;
	
	
	private RadiationAvgService radiationAvgService;
    /**
     * 处理地面数据
     * */
    @Override
    public void run() {
    	logger.info(">>>>>>>>>>>>开始 产生   大气平均 数据           AerosolAvgTask   当前线程名称 {}", Thread.currentThread().getName());
    	
    	
    	
    	aerosolAvgService=ApplicationContextProvider.getBean(AerosolAvgService.class);
    	
    	groundAvgService=ApplicationContextProvider.getBean(GroundAvgService.class);
    	
    	radiationAvgService=ApplicationContextProvider.getBean(RadiationAvgService.class);
    	

        
       
       //产生月平均数据  地面数据 从 1952年 1月1号开始 统计周 数据
     logger.info(">>>>>>>>>>>>开始   产生大气月平均 数据  当前线程名称 {}", Thread.currentThread().getName());
     while(true){
    	   Map<String,Object> mapMon=aerosolAvgService.getNextMonMessage();
           if(mapMon !=null){
           	boolean flag=(boolean)mapMon.get("success");
           	String year=(String)mapMon.get("year");
           	String mon=(String)mapMon.get("mon");
           	String message=(String)mapMon.get("message");
           	
           	logger.info("=========月平均 数据======="+message);
           	if(flag){
           		int result=aerosolAvgService.saveAvgMon(year, mon);
           		
           		logger.info("=====本次保存 地面 月平均 数据="+result);
           	}else{
           		break;
           	}
           	
           }
           else{
        	   break;
           }
       }
     logger.info(">>>>>>>>>>>>结束   产生大气月平均数据  当前线程名称 {}", Thread.currentThread().getName());
     
   //产生月平均数据  地面数据 从 1952年 1月1号开始 统计周 数据
     logger.info(">>>>>>>>>>>>结束   产生地面月平均 数据  当前线程名称 {}", Thread.currentThread().getName());
 	while(true){
 		 Map<String,Object> mapMon=groundAvgService.getNextMonMessage();
 	        if(mapMon !=null){
 	        	boolean flag=(boolean)mapMon.get("success");
 	        	String year=(String)mapMon.get("year");
 	        	String mon=(String)mapMon.get("mon");
 	        	String message=(String)mapMon.get("message");
 	        	
 	        	logger.info("=========月平均 数据======="+message);
 	        	if(flag){
 	        		int result=groundAvgService.saveAvgMon(year, mon);
 	        		
 	        		logger.info("=====本次保存 地面 月平均 数据="+result);
 	        	}else{
 	           		break;
 	           	}
 	        	
 	        }
 	        else{
	           		break;
	           	}
 	}
 	logger.info(">>>>>>>>>>>>结束   产生地面月平均 数据  当前线程名称 {}", Thread.currentThread().getName());
 	
 	//产生月平均数据  地面数据 从 1952年 1月1号开始 统计周 数据
 	logger.info(">>>>>>>>>>>>结束   产生辐射月平均 数据  当前线程名称 {}", Thread.currentThread().getName());
	while(true){
		 Map<String,Object> mapMon=radiationAvgService.getNextMonMessage();
	        if(mapMon !=null){
	        	boolean flag=(boolean)mapMon.get("success");
	        	String year=(String)mapMon.get("year");
	        	String mon=(String)mapMon.get("mon");
	        	String message=(String)mapMon.get("message");
	        	
	        	logger.info("=========月平均 数据======="+message);
	        	if(flag){
	        		int result=radiationAvgService.saveAvgMon(year, mon);
	        		
	        		logger.info("=====本次保存 地面 月平均 数据="+result);
	        	}else{
	            	break;
	            }
	        }else{
            	break;
            }
	}
	logger.info(">>>>>>>>>>>>结束   产生辐射月平均 数据  当前线程名称 {}", Thread.currentThread().getName());  
    
    }
}